home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / abstyles / aunsnot.bst < prev    next >
Text File  |  1992-05-24  |  16KB  |  941 lines

  1. % BibTeX bibliography style `AUNSNOT'
  2. ENTRY
  3. { address
  4. author
  5. booktitle
  6. chapter
  7. edition
  8. editor
  9. howpublished
  10. institution
  11. journal
  12. key
  13. month
  14. note
  15. number
  16. organization
  17. pages
  18. publisher
  19. school
  20. series
  21. title
  22. type
  23. volume
  24. year
  25. }
  26. {}
  27. { label }
  28. INTEGERS { output.state before.all mid.sentence after.sentence after.block 
  29. continue.sentence }
  30. FUNCTION {init.state.consts}
  31. { #0 'before.all :=
  32. #1 'mid.sentence :=
  33. #2 'after.sentence :=
  34. #3 'after.block :=
  35. #4 'continue.sentence :=
  36. }
  37. STRINGS { s t }
  38. FUNCTION {output.nonnull}
  39. { 's :=
  40. output.state continue.sentence =
  41. { " " * write$ }
  42. { output.state mid.sentence =
  43. { ", " * write$ }
  44. { output.state after.block =
  45. { add.period$ write$
  46. newline$
  47. "\newblock " write$
  48. }
  49. { output.state before.all =
  50. 'write$
  51. { add.period$ " " * write$ }
  52. if$
  53. }
  54. if$
  55. }
  56. if$
  57. continue.sentence 'output.state :=
  58. }
  59. if$
  60. s
  61. }
  62. FUNCTION {output}
  63. { duplicate$ empty$
  64. 'pop$
  65. 'output.nonnull
  66. if$
  67. }
  68. FUNCTION {output.check}
  69. { 't :=
  70. duplicate$ empty$
  71. { pop$ "empty " t * " in " * cite$ * warning$ }
  72. 'output.nonnull
  73. if$
  74. }
  75. FUNCTION {output.bibitem}
  76. { newline$
  77. "\bibitem{" write$
  78. cite$ write$
  79. "}" write$
  80. newline$
  81. ""
  82. before.all 'output.state :=
  83. }
  84. FUNCTION {fin.entry}
  85. { add.period$
  86. write$
  87. newline$
  88. }
  89. FUNCTION {new.block}
  90. { output.state before.all =
  91. 'skip$
  92. { after.block 'output.state := }
  93. if$
  94. }
  95. FUNCTION {new.sentence}
  96. { output.state after.block =
  97. 'skip$
  98. { output.state before.all =
  99. 'skip$
  100. { after.sentence 'output.state := }
  101. if$
  102. }
  103. if$
  104. }
  105. FUNCTION {new.clause}
  106. { output.state after.sentence =
  107. 'skip$
  108. { output.state after.block =
  109. 'skip$
  110. { output.state before.all =
  111. 'skip$
  112. { mid.sentence 'output.state := }
  113. if$
  114. }
  115. if$
  116. }
  117. if$
  118. }
  119. FUNCTION {not}
  120. {   { #0 }
  121. { #1 }
  122. if$
  123. }
  124. FUNCTION {and}
  125. {   'skip$
  126. { pop$ #0 }
  127. if$
  128. }
  129. FUNCTION {or}
  130. {   { pop$ #1 }
  131. 'skip$
  132. if$
  133. }
  134. FUNCTION {new.block.checka}
  135. { empty$
  136. 'skip$
  137. 'new.block
  138. if$
  139. }
  140. FUNCTION {new.block.checkb}
  141. { empty$
  142. swap$ empty$
  143. and
  144. 'skip$
  145. 'new.block
  146. if$
  147. }
  148. FUNCTION {new.sentence.checka}
  149. { empty$
  150. 'skip$
  151. 'new.sentence
  152. if$
  153. }
  154. FUNCTION {new.sentence.checkb}
  155. { empty$
  156. swap$ empty$
  157. and
  158. 'skip$
  159. 'new.sentence
  160. if$
  161. }
  162. FUNCTION {new.clause.checka}
  163. { empty$
  164. 'skip$
  165. 'new.clause
  166. if$
  167. }
  168. FUNCTION {new.clause.checkb}
  169. { empty$
  170. swap$ empty$
  171. and
  172. 'skip$
  173. 'new.clause
  174. if$
  175. }
  176. FUNCTION {field.or.null}
  177. { duplicate$ empty$
  178. { pop$ "" }
  179. 'skip$
  180. if$
  181. }
  182. FUNCTION {emphasize}
  183. { duplicate$ empty$
  184. { pop$ "" }
  185. { "\abtype{2}{" swap$ * "}" * }    
  186. if$
  187. }
  188. FUNCTION {capitalize}
  189. { duplicate$ empty$
  190. { pop$ "" }
  191. { "\abtype{0}{" swap$ * "}" * }    
  192. if$
  193. }
  194. FUNCTION {boldface}
  195. { duplicate$ empty$
  196. { pop$ "" }
  197. { "\abtype{3}{" swap$ * "}" * }    
  198. if$
  199. }
  200. FUNCTION {quote}
  201. { duplicate$ empty$
  202. { pop$ "" }
  203. { "\abtype{1}{" swap$ * "}" * }    
  204. if$
  205. }
  206. FUNCTION {parentheses}
  207. { duplicate$ empty$
  208. { pop$ "" }
  209. { "\abtype{5}{" swap$ * "}" * }    
  210. if$
  211. }
  212. INTEGERS { nameptr namesleft numnames }
  213. FUNCTION {format.names}
  214. { 's :=
  215. #1 'nameptr :=
  216. s num.names$ 'numnames :=
  217. numnames 'namesleft :=
  218. { namesleft #0 > }
  219. { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  220. nameptr #1 >
  221. { namesleft #1 >
  222. { ", " * t * }
  223. { numnames #2 >
  224. { "\abphrase{1}" * }    
  225. 'skip$
  226. if$
  227. t "others" =
  228. { "\abphrase{2}" * }        
  229. { "\abphrase{0}" * t * }    
  230. if$
  231. }
  232. if$
  233. }
  234. 't
  235. if$
  236. nameptr #1 + 'nameptr :=
  237. namesleft #1 - 'namesleft :=
  238. }
  239. while$
  240. }
  241. FUNCTION {format.authors}
  242. { author empty$
  243. { "" }
  244. { author format.names capitalize }
  245. if$
  246. }
  247. FUNCTION {format.editors}
  248. { editor empty$
  249. { "" }
  250. { editor format.names capitalize
  251. editor num.names$ #1 >
  252. { "\abphrase{3}" * }    
  253. { "\abphrase{4}" * }    
  254. if$
  255. }
  256. if$
  257. }
  258. FUNCTION {format.title}
  259. { title empty$
  260. { "" }
  261. { title "t" change.case$ }
  262. if$
  263. }
  264. FUNCTION {n.dashify}
  265. { 't :=
  266. ""
  267. { t empty$ not }
  268. { t #1 #1 substring$ "-" =
  269. { t #1 #2 substring$ "--" = not
  270. { "--" *
  271. t #2 global.max$ substring$ 't :=
  272. }
  273. {   { t #1 #1 substring$ "-" = }
  274. { "-" *
  275. t #2 global.max$ substring$ 't :=
  276. }
  277. while$
  278. }
  279. if$
  280. }
  281. { t #1 #1 substring$ *
  282. t #2 global.max$ substring$ 't :=
  283. }
  284. if$
  285. }
  286. while$
  287. }
  288. FUNCTION {format.date}
  289. { year empty$
  290. { month empty$
  291. { "" }
  292. { "there's a month but no year in " cite$ * warning$
  293. month parentheses
  294. }
  295. if$
  296. }
  297. { month empty$
  298. { year parentheses }
  299. { month " " * year * parentheses }
  300. if$
  301. }
  302. if$
  303. }
  304. FUNCTION {format.btitle}
  305. { title quote
  306. }
  307. FUNCTION {tie.or.space.connect}
  308. { duplicate$ text.length$ #3 <
  309. { "~" }
  310. { " " }
  311. if$
  312. swap$ * *
  313. }
  314. FUNCTION {either.or.check}
  315. { empty$
  316. 'pop$
  317. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  318. if$
  319. }
  320. FUNCTION {format.bvolume}
  321. { volume empty$
  322. { "" }
  323. { "\abphrase{8}" volume tie.or.space.connect    
  324. series empty$
  325. 'skip$
  326. { "\abphrase{5}" * series quote * }    
  327. if$
  328. "volume and number" number either.or.check
  329. }
  330. if$
  331. }
  332. FUNCTION {format.number.series}
  333. { volume empty$
  334. { number empty$
  335. { series field.or.null }
  336. { output.state mid.sentence = output.state continue.sentence = or
  337. { "\abphrase{10}" }    
  338. { "\abphrase{11}" }    
  339. if$
  340. number tie.or.space.connect
  341. series empty$
  342. { "there's a number but no series in " cite$ * warning$ }
  343. { "\abphrase{6}" * series * }    
  344. if$
  345. }
  346. if$
  347. }
  348. { "" }
  349. if$
  350. }
  351. FUNCTION {format.edition}
  352. { edition empty$
  353. { "" }
  354. { output.state mid.sentence = output.state continue.sentence = or
  355. { edition "l" change.case$ "\abphrase{12}" * }    
  356. { edition "t" change.case$ "\abphrase{12}" * }    
  357. if$
  358. }
  359. if$
  360. }
  361. INTEGERS { multiresult }
  362. FUNCTION {multi.page.check}
  363. { 't :=
  364. #0 'multiresult :=
  365. { multiresult not
  366. t empty$ not
  367. and
  368. }
  369. { t #1 #1 substring$
  370. duplicate$ "-" =
  371. swap$ duplicate$ "," =
  372. swap$ "+" =
  373. or or
  374. { #1 'multiresult := }
  375. { t #2 global.max$ substring$ 't := }
  376. if$
  377. }
  378. while$
  379. multiresult
  380. }
  381. FUNCTION {format.pages}
  382. { pages empty$
  383. { "" }
  384. { pages multi.page.check
  385. { "\abphrase{13}" pages n.dashify tie.or.space.connect }    
  386. { "\abphrase{14}" pages tie.or.space.connect }            
  387. if$
  388. }
  389. if$
  390. }
  391. FUNCTION {format.vol.num.pages}
  392. { volume field.or.null boldface
  393. number empty$
  394. 'skip$
  395. { "\abtype{4}{" number * "}" * *    
  396. volume empty$
  397. { "there's a number but no volume in " cite$ * warning$ }
  398. 'skip$
  399. if$
  400. }
  401. if$
  402. pages empty$
  403. 'skip$
  404. { duplicate$ empty$
  405. { pop$ format.pages }
  406. { ", " * pages n.dashify * }
  407. if$
  408. }
  409. if$
  410. }
  411. FUNCTION {format.chapter.pages}
  412. { chapter empty$
  413. 'format.pages
  414. { type empty$
  415. { "\abphrase{15}" }    
  416. { type "l" change.case$ }
  417. if$
  418. chapter tie.or.space.connect
  419. pages empty$
  420. 'skip$
  421. { ", " * format.pages * }
  422. if$
  423. }
  424. if$
  425. }
  426. FUNCTION {format.in.ed.booktitle}
  427. { booktitle empty$
  428. { "" }
  429. { editor empty$
  430. { "\abphrase{7}" booktitle quote * }                
  431. { "\abphrase{7}" format.editors * ", " * booktitle quote * }    
  432. if$
  433. }
  434. if$
  435. }
  436. FUNCTION {empty.misc.check}
  437. { author empty$ title empty$ howpublished empty$
  438. month empty$ year empty$ note empty$
  439. and and and and and
  440. { "all relevant fields are empty in " cite$ * warning$ }
  441. 'skip$
  442. if$
  443. }
  444. FUNCTION {format.thesis.type}
  445. { type empty$
  446. 'skip$
  447. { pop$
  448. type "t" change.case$
  449. }
  450. if$
  451. }
  452. FUNCTION {format.tr.number}
  453. { type empty$
  454. { "\abphrase{16}" }    
  455. 'type
  456. if$
  457. number empty$
  458. { "t" change.case$ }
  459. { number tie.or.space.connect }
  460. if$
  461. }
  462. FUNCTION {format.article.crossref}
  463. { key empty$
  464. { journal empty$
  465. { "need key or journal for " cite$ * " to crossref " * crossref *
  466. warning$
  467. ""
  468. }
  469. { "\abphrase{7}" journal emphasize * }    
  470. if$
  471. }
  472. { "\abphrase{7}" key * }    
  473. if$
  474. " \cite{" * crossref * "}" *
  475. }
  476. FUNCTION {format.crossref.editor}
  477. { editor #1 "{vv~}{ll}" format.name$
  478. editor num.names$ duplicate$
  479. #2 >
  480. { pop$ "\abphrase{2}" * }    
  481. { #2 <
  482. 'skip$
  483. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  484. { "\abphrase{2}" * }                     
  485. { "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } 
  486. if$
  487. }
  488. if$
  489. }
  490. if$
  491. }
  492. FUNCTION {format.book.crossref}
  493. { volume empty$
  494. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  495. "\abphrase{7}"                
  496. }
  497. { "\abphrase{9}" volume tie.or.space.connect    
  498. "\abphrase{5}" *                
  499. }
  500. if$
  501. editor empty$
  502. editor field.or.null author field.or.null =
  503. or
  504. { key empty$
  505. { series empty$
  506. { "need editor, key, or series for " cite$ * " to crossref " *
  507. crossref * warning$
  508. "" *
  509. }
  510. { series quote * }
  511. if$
  512. }
  513. { key * }
  514. if$
  515. }
  516. { format.crossref.editor * }
  517. if$
  518. " \cite{" * crossref * "}" *
  519. }
  520. FUNCTION {format.incoll.inproc.crossref}
  521. { editor empty$
  522. editor field.or.null author field.or.null =
  523. or
  524. { key empty$
  525. { booktitle empty$
  526. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  527. crossref * warning$
  528. ""
  529. }
  530. { "\abphrase{7}" booktitle quote * }    
  531. if$
  532. }
  533. { "\abphrase{7}" key * }    
  534. if$
  535. }
  536. { "\abphrase{7}" format.crossref.editor * }    
  537. if$
  538. " \cite{" * crossref * "}" *
  539. }
  540. FUNCTION {article}
  541. { output.bibitem
  542. format.authors "author" output.check
  543. new.block
  544. crossref missing$
  545. { journal emphasize "journal" output.check
  546. format.vol.num.pages output
  547. format.date "year" output.check
  548. }
  549. { format.article.crossref output.nonnull
  550. new.clause
  551. format.pages output
  552. }
  553. if$
  554. new.block
  555. note output
  556. fin.entry
  557. }
  558. FUNCTION {book}
  559. { output.bibitem
  560. author empty$
  561. { format.editors "author and editor" output.check }
  562. { format.authors output.nonnull
  563. crossref missing$
  564. { "author and editor" editor either.or.check }
  565. 'skip$
  566. if$
  567. }
  568. if$
  569. new.block
  570. format.btitle "title" output.check
  571. crossref missing$
  572. { new.clause
  573. format.bvolume output
  574. new.block
  575. format.number.series output
  576. new.sentence
  577. publisher "publisher" output.check
  578. address new.clause.checka
  579. address output
  580. }
  581. { new.block
  582. format.book.crossref output.nonnull
  583. }
  584. if$
  585. edition new.clause.checka
  586. format.edition output
  587. format.date "year" output.check
  588. new.block
  589. note output
  590. fin.entry
  591. }
  592. FUNCTION {booklet}
  593. { output.bibitem
  594. format.authors output
  595. new.block
  596. format.title "title" output.check
  597. howpublished address new.block.checkb
  598. howpublished output
  599. address new.clause.checka
  600. address output
  601. format.date output
  602. new.block
  603. note output
  604. fin.entry
  605. }
  606. FUNCTION {inbook}
  607. { output.bibitem
  608. author empty$
  609. { format.editors "author and editor" output.check }
  610. { format.authors output.nonnull
  611. crossref missing$
  612. { "author and editor" editor either.or.check }
  613. 'skip$
  614. if$
  615. }
  616. if$
  617. new.block
  618. format.btitle "title" output.check
  619. new.clause
  620. crossref missing$
  621. { format.bvolume output
  622. new.clause
  623. format.chapter.pages "chapter and pages" output.check
  624. new.block
  625. format.number.series output
  626. new.sentence
  627. publisher "publisher" output.check
  628. address new.clause.checka
  629. address output
  630. }
  631. { format.chapter.pages "chapter and pages" output.check
  632. new.block
  633. format.book.crossref output.nonnull
  634. }
  635. if$
  636. edition new.clause.checka
  637. format.edition output
  638. format.date "year" output.check
  639. new.block
  640. note output
  641. fin.entry
  642. }
  643. FUNCTION {incollection}
  644. { output.bibitem
  645. format.authors "author" output.check
  646. new.block
  647. chapter empty$ pages empty$ and
  648. {
  649. format.title "title" output.check
  650. new.block
  651. }
  652. 'skip$
  653. if$
  654. crossref missing$
  655. { format.in.ed.booktitle "booktitle" output.check
  656. new.clause
  657. format.bvolume output
  658. new.clause
  659. format.number.series output
  660. new.clause
  661. format.chapter.pages output
  662. new.sentence
  663. publisher "publisher" output.check
  664. address new.clause.checka
  665. address output
  666. edition new.clause.checka
  667. format.edition output
  668. format.date "year" output.check
  669. }
  670. { format.incoll.inproc.crossref output.nonnull
  671. new.clause
  672. format.chapter.pages output
  673. }
  674. if$
  675. new.block
  676. note output
  677. fin.entry
  678. }
  679. FUNCTION {inproceedings}
  680. { output.bibitem
  681. format.authors "author" output.check
  682. new.block
  683. pages empty$
  684. {
  685. format.title "title" output.check
  686. new.block
  687. }
  688. 'skip$
  689. if$
  690. crossref missing$
  691. { format.in.ed.booktitle "booktitle" output.check
  692. volume new.clause.checka
  693. format.bvolume output
  694. number series new.clause.checkb
  695. format.number.series output
  696. pages new.clause.checka
  697. format.pages output
  698. address empty$
  699. { organization publisher new.sentence.checkb
  700. organization output
  701. publisher new.clause.checka
  702. publisher output
  703. format.date "year" output.check
  704. }
  705. { new.clause
  706. address output.nonnull
  707. format.date "year" output.check
  708. new.sentence
  709. organization output
  710. new.clause
  711. publisher output
  712. }
  713. if$
  714. }
  715. { format.incoll.inproc.crossref output.nonnull
  716. new.clause
  717. format.pages output
  718. }
  719. if$
  720. new.block
  721. note output
  722. fin.entry
  723. }
  724. FUNCTION {conference} { inproceedings }
  725. FUNCTION {manual}
  726. { output.bibitem
  727. author empty$
  728. { organization empty$
  729. 'skip$
  730. { organization output.nonnull
  731. new.clause
  732. address output
  733. }
  734. if$
  735. }
  736. { format.authors output.nonnull }
  737. if$
  738. new.block
  739. format.btitle "title" output.check
  740. author empty$
  741. { organization empty$
  742. { address new.block.checka
  743. address output
  744. }
  745. 'skip$
  746. if$
  747. }
  748. { organization address new.block.checkb
  749. organization output
  750. address new.clause.checka
  751. address output
  752. }
  753. if$
  754. edition new.clause.checka
  755. format.edition output
  756. format.date output
  757. new.block
  758. note output
  759. fin.entry
  760. }
  761. FUNCTION {mastersthesis}
  762. { output.bibitem
  763. format.authors "author" output.check
  764. new.block
  765. format.title "title" output.check
  766. new.block
  767. "\abphrase{17}" format.thesis.type output.nonnull    
  768. new.clause
  769. school "school" output.check
  770. address new.clause.checka
  771. address output
  772. format.date "year" output.check
  773. new.block
  774. note output
  775. fin.entry
  776. }
  777. FUNCTION {misc}
  778. { output.bibitem
  779. format.authors output
  780. title howpublished new.block.checkb
  781. format.title output
  782. howpublished new.block.checka
  783. howpublished output
  784. format.date output
  785. new.block
  786. note output
  787. fin.entry
  788. empty.misc.check
  789. }
  790. FUNCTION {phdthesis}
  791. { output.bibitem
  792. format.authors "author" output.check
  793. new.block
  794. format.btitle "title" output.check
  795. new.block
  796. "\abphrase{18}" format.thesis.type output.nonnull    
  797. new.clause
  798. school "school" output.check
  799. address new.clause.checka
  800. address output
  801. format.date "year" output.check
  802. new.block
  803. note output
  804. fin.entry
  805. }
  806. FUNCTION {proceedings}
  807. { output.bibitem
  808. editor empty$
  809. { organization output }
  810. { format.editors output.nonnull }
  811. if$
  812. new.block
  813. format.btitle "title" output.check
  814. volume new.clause.checka
  815. format.bvolume output
  816. number series new.clause.checkb
  817. format.number.series output
  818. address empty$
  819. { editor empty$
  820. { publisher new.sentence.checka }
  821. { organization publisher new.sentence.checkb
  822. organization output
  823. publisher new.clause.checka
  824. }
  825. if$
  826. publisher output
  827. format.date "year" output.check
  828. }
  829. { new.clause
  830. address output.nonnull
  831. format.date "year" output.check
  832. new.sentence
  833. editor empty$
  834. 'skip$
  835. { organization output
  836. new.clause
  837. }
  838. if$
  839. publisher output
  840. }
  841. if$
  842. new.block
  843. note output
  844. fin.entry
  845. }
  846. FUNCTION {techreport}
  847. { output.bibitem
  848. format.authors "author" output.check
  849. new.block
  850. number empty$
  851. {
  852. format.title "title" output.check
  853. new.block
  854. }
  855. 'skip$
  856. if$
  857. format.tr.number output.nonnull
  858. new.clause
  859. institution "institution" output.check
  860. address new.clause.checka
  861. address output
  862. format.date "year" output.check
  863. new.block
  864. note output
  865. fin.entry
  866. }
  867. FUNCTION {unpublished}
  868. { output.bibitem
  869. format.authors "author" output.check
  870. new.block
  871. format.title "title" output.check
  872. new.block
  873. note "note" output.check
  874. format.date output
  875. fin.entry
  876. }
  877. FUNCTION {default.type} { misc }
  878. MACRO {jan} {"\abmonth{1}"}
  879. MACRO {feb} {"\abmonth{2}"}
  880. MACRO {mar} {"\abmonth{3}"}
  881. MACRO {apr} {"\abmonth{4}"}
  882. MACRO {may} {"\abmonth{5}"}
  883. MACRO {jun} {"\abmonth{6}"}
  884. MACRO {jul} {"\abmonth{7}"}
  885. MACRO {aug} {"\abmonth{8}"}
  886. MACRO {sep} {"\abmonth{9}"}
  887. MACRO {oct} {"\abmonth{10}"}
  888. MACRO {nov} {"\abmonth{11}"}
  889. MACRO {dec} {"\abmonth{12}"}
  890. MACRO {first}   {"\abedition{1}"}
  891. MACRO {second}  {"\abedition{2}"}
  892. MACRO {third}   {"\abedition{3}"}
  893. MACRO {fourth}  {"\abedition{4}"}
  894. MACRO {fifth}   {"\abedition{5}"}
  895. MACRO {sixth}   {"\abedition{6}"}
  896. MACRO {seventh} {"\abedition{7}"}
  897. MACRO {eighth}  {"\abedition{8}"}
  898. MACRO {ninth}   {"\abedition{9}"}
  899. MACRO {tenth}   {"\abedition{10}"}
  900. MACRO {section}   {"\abchapter{0}"}
  901. MACRO {paragraph} {"\abchapter{1}"}
  902. MACRO {appendix}  {"\abchapter{2}"}
  903. MACRO {part}      {"\abchapter{3}"}
  904. READ
  905. STRINGS { longest.label }
  906. INTEGERS { number.label longest.label.width }
  907. FUNCTION {initialize.longest.label}
  908. { "" 'longest.label :=
  909. #1 'number.label :=
  910. #0 'longest.label.width :=
  911. }
  912. FUNCTION {longest.label.pass}
  913. { number.label int.to.str$ 'label :=
  914. number.label #1 + 'number.label :=
  915. label width$ longest.label.width >
  916. { label 'longest.label :=
  917. label width$ 'longest.label.width :=
  918. }
  919. 'skip$
  920. if$
  921. }
  922. EXECUTE {initialize.longest.label}
  923. ITERATE {longest.label.pass}
  924. FUNCTION {begin.bib}
  925. {
  926. "\newif\ifabfull\abfullfalse" write$ newline$
  927. preamble$ empty$
  928. 'skip$
  929. { preamble$ write$ newline$ }
  930. if$
  931. "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  932. }
  933. EXECUTE {begin.bib}
  934. EXECUTE {init.state.consts}
  935. ITERATE {call.type$}
  936. FUNCTION {end.bib}
  937. { newline$
  938. "\end{thebibliography}" write$ newline$
  939. }
  940. EXECUTE {end.bib}
  941.